package com.gtw;

import com.gtw.handler.ConcreteHandler1;
import com.gtw.handler.ConcreteHandler2;
import com.gtw.handler.Handler;
import com.gtw.handler.Request;

public class Client {

    /**
     * 一般会有一个封装类对责任链进行封装,也就是代替Client,直接返回链中的第一个处理者,可以简化高层模块的调用
     */
    public static void main(String[] args){
        //声明所有的处理节点
        Handler handler1 = new ConcreteHandler1();
        Handler handler2 = new ConcreteHandler2();

        //设置链的顺序
        handler1.setNextHandler(handler2);

        //处理请求
        Request request = new Request(Request.LEVEL2);
        handler1.handleMessage(request);
    }
}
